package myJDBC.lowLevel;

import java.sql.SQLException;
import java.util.ArrayList;

public class AuthChecker {
	//ret objId, groupid1, group2,NULL, groupname1 groupname2 or emptyarrayList
	public static ArrayList<String> Check(String _log, String _pass) throws SQLException {
		ArrayList<ArrayList<String>> tmp = new ArrayList<ArrayList<String>>();
		ArrayList<String> ret = new ArrayList<String>();
		ArrayList<Integer> groupids=new ArrayList<Integer>();
		String objId="";
		boolean userExist = false;
		boolean passValid=false;
	//	int objTypeId = ObjectTypes.returnObjTypeId("user");
		int objTypeId=39;
		ArrayList<String> users = Objects.returnObjInfoWithObjTypeID(objTypeId);
		for (int i = 0; i < users.size(); i = i + 2) {// цикл по юзерам
		//	tmp = Objects.returnObjectAttributesWithValId(Integer.parseInt(users.get(i)), objTypeId);
			tmp = Objects.returnObjectAttributesWithValIdNew(Integer.parseInt(users.get(i)), objTypeId);
			for (ArrayList<String> ar : tmp) {// цикл по атрибутам юзера
				if (Integer.parseInt(ar.get(0))==7) {
				//if (ar.get(1).equals("Login")) {
					if (ar.get(1).equals(_log)) {// log correnct
						objId=users.get(i);
						userExist = true;
						break;
					}
				}
			}
			if (userExist)
				break;
		}
		if (userExist) {
			for (ArrayList<String> ar : tmp) {// цикл по атрибутам юзера
				if (Integer.parseInt(ar.get(0))==8) {
				//if (ar.get(1).equals("Password")) {
					if(ar.get(1).equals(_pass))
						passValid=true;
				}
				//if (ar.get(1).equals("GroupOfUser"))
				if(((Integer.parseInt(ar.get(0))==6)))
					groupids.add(Integer.parseInt(ar.get(1)));
			}
		}
		if(passValid){
			ret.add(objId);
			for(int i: groupids)
				ret.add(String.valueOf(i));
			ret.add(null);
			for(int i: groupids)
				ret.add(Objects.returnObjInfo(i).get(0));
		}
		return ret;
	}
}
